/**
 * Generali Solutions d'assurances - Tous droits réservés &copy; 2007 - 2010
 */
package fr.generali.accueilclient.produit.map;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

import fr.generali.accueilclient.produit.param.ITableProduit;
import fr.generali.accueilclient.table.param.ITableParam;

/**
 * @author Holmes Kelly
 */
public class MapProduitDecorator extends HashMap<ITableParam, ITableProduit> implements
                Map<ITableParam, ITableProduit>, Cloneable, Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = 6909206640651074415L;
    /**
     * map produit decorator
     */
    private Map<ITableParam, ITableProduit> mapTableProduitDecorator;

    /**
     * @param mapTableProduitDecorator map produit decorator
     */
    public MapProduitDecorator(Map<ITableParam, ITableProduit> mapTableProduitDecorator) {
        super(mapTableProduitDecorator);
    }

    /**
     * @return the mapProduitDecorator
     */
    public Map<ITableParam, ITableProduit> getMapTableProduitDecorator() {
        return mapTableProduitDecorator;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public ITableProduit get(Object key) {

        ITableParam tableParam = ITableParam.class.cast(key);

        ITableProduit tableProduit = null;

        for (ITableParam tableParamLocal : keySet()) {

            if (tableParamLocal.equals(tableParam)) {

                return super.get(tableParamLocal);
            }
        }

        return tableProduit;
    }

}
